1. Field of the Invention
The present invention relates to the field of printing systems management and in particular, to systems and methods for print scheduling.
2. Description of Related Art
Printing devices and printing systems are ubiquitous in modern office settings, in the home, and in home-office environments. As the cost of printing devices continues to decrease, a greater choice of printers may be available to users in most environments. In large office systems, a print server may be paired with printers and off load several activities from sending devices and the printers. For example, the print server may queue jobs when one or more printers is busy and forward to the job to a specified printer at a later time.
Print servers require additional memory and firmware and may add significantly to the cost of printing devices. Consequently, print servers are often implemented using older computers with limited functionality. However, in larger or more expensive printing devices, server functionality may be integrated into the printing device. If the print server is implemented on a separate computer, separate installation, administration, and management may be required thereby increasing the cost and complexity of system administration.
In the context of a small business or a home environment where lower cost printers predominate, the functionality and convenience afforded by print servers may be lacking. Moreover, low cost printing devices generally have limited memory and therefore have lower print spooling capacity. Print spooling is the process by which a print job is stored in a memory location for later processing. When a print job is spooled, it has been stored in memory for later processing by a printing device. Print spool memory may reside on the printer, a print controller, or a print server.
Print spooling allows a print job to be processed in the background and frees the sending device to perform other functions. The sending device or print client or simply client may be a computer, camera, or any other device requiring the services of the printing device. When the print spool is full, the sending device waits and retries at random intervals until the printing device is able to accept new jobs. In such situations, there is no guarantee that a sending device will be able to spool its job during the next retry. For example, other computers and/or devices may have filled the print spool with new jobs in the interim if one or more preexisting print jobs had completed prior to the sending device's next retry.
The “spool full” problem may be exacerbated if a printer or a pool of printers is being shared by a large number of devices, or in an environment that is print heavy, such as in a document processing environment. Although, the “spool full” problem may occur more frequently when lower cost devices with smaller spool memory are shared, it may also occur with larger print devices depending on the number and type of print jobs that are being sent to the device. The “spool full” problem can be very frustrating for users because there is no guarantee that a print job will be processed in a timely manner.
Thus, there is a need for a system, method, and apparatus that permits the scheduling and efficient processing of print jobs and operates using existing protocols for sending and/or receiving print jobs.